package main

import (
	"flag"
	"fmt"
	"sync"

	"github.com/spf13/viper"
)

var (
	Conf     *CmdConfig
	once     sync.Once
	confPath string
)

func init() {
	flag.StringVar(&confPath, "d", "./", " set logic config file path")
	InitConfig()
}

func InitConfig() (err error) {
	Conf = NewConfig()
	viper.SetConfigName("config") // 配置文件的名字
	viper.SetConfigType("toml")   // 配置文件的类型
	viper.AddConfigPath(confPath) // 配置文件的路径

	if err := viper.ReadInConfig(); err != nil {
		panic(fmt.Errorf("unable to Read Configfile： err %s \n", err))
		//return err
	}

	if err := viper.Unmarshal(&Conf); err != nil {
		panic(fmt.Errorf("unable to decode into struct：  %s \n", err))
	}

	return nil
}

func NewConfig() *CmdConfig {
	return &CmdConfig{}
}
